import { ModuleMetadata, Type } from '@nestjs/common'

export interface BotClientModuleOptions {
  natsServers: string[]
}

export interface BotClientModuleOptionsFactory {
  createBotClientOptions(): BotClientModuleOptions | Promise<BotClientModuleOptions>
}

export interface BotClientModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
  useExisting?: Type<BotClientModuleOptionsFactory>
  useClass?: Type<BotClientModuleOptionsFactory>
  inject?: any[]
  useFactory?: (...args: any[]) => Promise<BotClientModuleOptions> | BotClientModuleOptions
}
